# 一般 TensorFlow 的模型，会被存储为 SavedModel 格式。这也是 Google 目前推荐的模型保存最佳实践。SavedModel 格式可以通过 tensorflowjs-converter 转换器转换为可以直接被 TensorFlow.js 加载的格式，从而在 JavaScript 语言中进行使用。
#
# 安装 tensorflowjs_converter
#
# $ pip install tensorflowjs
# tensorflowjs_converter 的使用细节，可以通过 --help 参数查看程序帮助:
#
# $ tensorflowjs_converter --help
# 以下我们以 MobilenetV1 为例，看一下如何对模型文件进行转换操作，并将可以被 TensorFlow.js 加载的模型文件，存放到 /mobilenet/tfjs_model 目录下。
#
# 转换 SavedModel：将 /mobilenet/saved_model 转换到 /mobilenet/tfjs_model
#
# tensorflowjs_converter \
#     --input_format=tf_saved_model \
#     --output_node_names='MobilenetV1/Predictions/Reshape_1' \
#     --saved_model_tags=serve \
#     /mobilenet/saved_model \
#     /mobilenet/tfjs_model
# 转换完成的模型，保存为了两类文件：
#
# model.json：模型架构
#
# group1-shard*of*：模型参数
#
# 举例来说，我们对 MobileNet v2 转换出来的文件，如下：
#
# /mobilenet/tfjs_model/model.json /mobilenet/tfjs_model/group1-shard1of5 … /mobilenet/tfjs_model/group1-shard5of5
#
# 为了加载转换完成的模型文件，我们需要安装 tfjs-converter 和 @tensorflow/tfjs 模块:
#
# $ npm install @tensorflow/tfjs
# 然后，我们就可以通过 JavaScript 来加载 TensorFlow 模型了！
#
# import * as tf from '@tensorflow/tfjs'
#
# const MODEL_URL = '/mobilenet/tfjs_model/model.json'
#
# const model = await tf.loadGraphModel(MODEL_URL)
#
# const cat = document.getElementById('cat')
# model.execute(tf.browser.fromPixels(cat))


# tensorflowjs_converter \
#     --input_format=tf_saved_model \
#     --output_node_names='MobilenetV1/Predictions/Reshape_1' \
#     --saved_model_tags=serve \
#     /mobilenet/saved_model \
#     /mobilenet/tfjs_model